package com.ece.devirtualizus.Dao;

import java.util.Date;
import java.util.List;

import com.ece.devirtualizus.ModelDto.DefiDto;
import com.ece.devirtualizus.ModelDto.DefiTemplateName;
import com.ece.devirtualizus.ModelDto.Modules;

public interface IDefiDao {

	public boolean sendDefiRequest(String senderID, String receiverID,
			Date dateDebut, Date dateFin, boolean isBestAtTheEnd,
			String objetPari, String modulePari, int objectifInModule,boolean isDisplayDetails, DefiTemplateName typeDefi);
	
	public List<String> getAllUserWithDefiInProgress(String userID);
	
	public boolean hasAlreadySendDefi(String myID, String receiverID);
	
	public boolean hasReceiveDefiFrom(String myID, String receiverID);
	
	public DefiDto getAvancementDefiInformation(String senderID, String receiverID);
	
	public List<DefiDto> getAllDefiInProgressByModule(String userID, Modules module);
	
	public boolean finishDefi(String senderID, String receiverID, String winnerID, String looserID);
	
	public List<DefiDto> getAllDefiByFinish(String userID,boolean isFinish);
	
	public List<DefiDto> getAllDefiWith(String meId, String opponentId);

}
